SE-Software Process Model
What is a software process model?
- A software process
- is a set of activities whose goal is the development or evolution (演变) of software
- Software process model
- a simplified representation of a software process from a specific perspective.
What process models have we learnt in this semester?
Waterfall model
A process that flows in one - direction, involving analysis, design, coding, testing, and maintenance in sequence.
Advantage:
- Straightforward and Disciplined
Disadvantage:
- Users cannot describe their requirements very clearly at the beginning
- Hard to follow
- The projects developed with this process are often delayed
Incremental process model
Allows doing the most important features first and adding the rest later, with a loop in the process for adding more requirements.
Clients do NOT need to specify the requirements for the whole system at the beginning
Clients can specify the most important parts to finish first
It requires more testing each time a new increment is added compared to the waterfall model.
Advantage:
- The risk that the whole system fails is lower (compared to the waterfall model)
- Shorten the delivery time
Disadvantage:
- The system structure is loose
- Hard to define the increments
Prototyping model
A quick design -> the construction of a prototype
Identify software requirements
Paper work Prototype: A non-computerized form of prototype, likely involving physical or hand-drawn representations to give an initial idea of the system.
Computer programs Prototype: A prototype in the form of a computer program, which can be evolved into the final system.
- This allows developers to have a quick design and for users to get an initial look at the system.
Advantages:
- Users can have an initial look of the system
- Developers have a quick design
- The prototype can be evolved to a system
Disadvantages:
- Rush to get it work
- Hard to ensure the quality and to maintain
Spiral model
proposed by Barry Boehm
An evolutionary(演变) (iterative) software process model
Combine both waterfall model and prototyping model
Many variants are available
Advantages:
- Developers can using prototyping in each evolutionary level
- Reduce the risk
Disadvantage:
- Continual risk analysis
- Document maintenance
Rational Unified Process
A process includes many cycles
One cycle includes four phases
- Inception
- Elaboration
- Construction
- Transitions
One phase includes several iterations
- Workflows are in one iteration
Advantages:
- Combine several process models
- Support prototyping and incremental delivery
- Illustrate good practices in specification and design
- Combine several process models
Disadvantage:
- Not suitable for embedded software development